package pms.controller;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

import pms.dao.RennenDao;
import pms.dao.RennlaeuferDao;

/**
 * Controller to generate the Home Page basics to be rendered by a view. It
 * extends the convenience class AbstractController that encapsulates most of
 * the drudgery involved in handling HTTP requests.
 * 
 * @author josef@dr-schneeberger.de
 */
public class SaveRennenKonfig extends AbstractController {
	private RennenDao rennenDao;
	
	public void setRennenDao(RennenDao rennenDao) {
		this.rennenDao = rennenDao;
	}

	public void setRennlaeuferDao(RennlaeuferDao rennlaeuferDao) {
	}

	protected ModelAndView handleRequestInternal(
			HttpServletRequest httpServletRequest,
			HttpServletResponse httpServletResponse) throws Exception {
		@SuppressWarnings("rawtypes")
		Map pm = httpServletRequest.getParameterMap();
		String[] rennlaeuferIds = (String[]) pm.get("rennlaeuferId");
		String[] rennlaeuferImBusIds = (String[]) pm.get("rennlaeuferImBusId");
		//String busplatz = (String) pm.get("busplatz");
		int rennenId;
		ModelAndView mv = new ModelAndView();
		try {
			rennenId = Integer.parseInt(httpServletRequest.getParameter("rennenId"));
			rennenDao.konfiguriereRennstat(rennenId, rennlaeuferIds, rennlaeuferImBusIds);
			mv.addObject("title", "Konfiguration des Rennens " + rennenDao.findById(rennenId).getRennbezeichnung());
			mv.addObject("message", "Das Rennen wurde erfolgreich zusammengestellt. " + "Es nehmen " + rennlaeuferIds.length + " Rennläufer teil.");
		} catch (NumberFormatException e) {
			mv.addObject("title", "Konfiguration eines Rennens");
			mv.addObject("message", "Das Rennen konnte nicht konfiguriert werden. Ein Fehler ist aufgetreten!");
		}
		mv.setViewName("home"); //alt("list-rennen")
		return mv;
	}

}
